﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSE.ProcessManager.Server.InteligenceModules
{
    class ServiceProcessExecutor : BaseProcessExecutor, IServiceProcess
    {
        #region IServiceProcess Members

        /// <summary>
        /// Inicia a execução do processo de serviço.
        /// </summary>
        public void Start()
        {
            if (Gateway == null)
                //TODO: Implementar disparo de exception para quando não houver um Gateway definido.
                throw new Exception();

            if (Message == null)
                //TODO: Implementar disparo de exception para quando não houver uma Mensagem definida.
                throw new Exception();

            Message.Operation = "Start";

            //Envia a mensagem para o processo.
            this.Gateway.SendMessage(Message);
        }

        /// <summary>-
        /// Para a execução do processo de serviço.
        /// </summary>
        public void Stop()
        {
            if (Gateway == null)
                //TODO: Implementar disparo de exception para quando não houver um Gateway definido.
                throw new Exception();

            if (Message == null)
                //TODO: Implementar disparo de exception para quando não houver uma Mensagem definida.
                throw new Exception();

            Message.Operation = "Stop";

            //Envia a mensagem para o processo.
            this.Gateway.BeginSendMessage(Message);
        }

        #endregion
    }
}
